[][src]Crate tract_core

Tract

Tiny, no-nonsense, self contained, portable TensorFlow and ONNX inference.

Example

use tract_core::internal::*;

// build a simple model that just add 3 to each input component
let mut model = InferenceModel::default();

let input = model.add_source_default("input").unwrap();
let three = model.add_const("three".to_string(), tensor0(3f32)).unwrap();
let add = model.add_node_default("add".to_string(),
    tract_core::ops::math::Add::default(),
    ).unwrap();

model.add_edge(OutletId::new(input, 0), InletId::new(add, 0)).unwrap();
model.add_edge(OutletId::new(three, 0), InletId::new(add, 1)).unwrap();

// We build an execution plan. Default inputs and outputs are inferred from
// the model graph.
let plan = SimplePlan::new(&model).unwrap();

// run the computation.
let input = ndarray::arr1(&[1.0f32, 2.5, 5.0]);
let mut outputs = plan.run(tvec![input.into()]).unwrap();

// take the first and only output tensor
let mut tensor = outputs.pop().unwrap();

// unwrap it as array of f32
let tensor = tensor.to_array_view::<f32>().unwrap();
assert_eq!(tensor, ndarray::arr1(&[4.0, 5.5, 8.0]).into_dyn());

While creating a model from Rust code is useful for testing the library, real-life use-cases will usually load a TensorFlow or ONNX model using tract-tensorflow or tract-onnx crates.

Re-exports

pub extern crate error_chain;
pub extern crate ndarray;
pub use crate::errors::*;

Modules

analyser
broadcast
datum

Tensor is the main data container for tract

dim
errors

error_chain generated types

framework
internal

This prelude is meant for code extending tract (like implementing new ops).

macros
model

Models and their lifecycle

ops

Ops

plan
prelude

This prelude is meant for code using tract.

pulse
tensor

Tensor, tract main data object of interest.

Macros

args_1
args_2
args_3
args_4
args_5
assert_backward

Asserts that backward inference results work as expected.

assert_close
assert_forward

Asserts that forward inference results work as expected.

boxed_new
dimfact

Constructs a dimension fact.

dispatch_copy
dispatch_datum
dispatch_floatlike
dispatch_numbers
element_bin
element_map
element_map_with_params
impl_op_same_as
shapefact

Constructs a shape fact.

tvec
typefact

Constructs a type fact.

unwrap_or_none

Tries to unwrap an option, or returns Ok(None) otherwise.

valuefact

Constructs an value fact.

wrap